U extends U
T extends T
TypeScriptの型制約や、conditional typesの条件節にU extends Uと書くことがある
これは以下のように書いても同じ意味
U extends unknown
U exrends any
必ず真になるので、? ..の節に入る
必ず真になるのに何故書く必要があるのか?
これは、UがTypeScriptのUnion型のときにしか使わない
ココ extends ..がUnion型の場合、Distributive Conditional Typesの機能により分配されるが、無理やり分配するためだけに使用される
使用例
UnionからUnionへの型レベルmapと考える
#Union型周りのイディオム